home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / unix / volume20 / pcomm1.2 / part02 < prev    next >
Encoding:
Internet Message Format  |  1989-10-25  |  57.9 KB

  1. Subject:  v20i068:  Pcomm telecommunication package, Part02/08
  2. Newsgroups: comp.sources.unix
  3. Sender: sources
  4. Approved: rsalz@uunet.UU.NET
  5.  
  6. Submitted-by: Emmet P. Gray <uiucuxc!fthood!egray>
  7. Posting-number: Volume 20, Issue 68
  8. Archive-name: pcomm1.2/part02
  9.  
  10. #! /bin/sh
  11. # This is a shell archive, meaning:
  12. # 1. Remove everything above the #! /bin/sh line.
  13. # 2. Save the resulting text in a file.
  14. # 3. Execute the file with /bin/sh (not csh) to create:
  15. #    Makefile
  16. #    Matches.1
  17. #    Modem_break.1
  18. #    Pcomm.1
  19. #    Pcomm.dial_dir
  20. #    Pcomm.extrnl
  21. #    Pcomm.modem
  22. #    Pcomm.param
  23. #    Readme
  24. #    Release.notes
  25. #    Sample
  26. #    Unixpc.shar
  27. #    Waitfor.1
  28. export PATH; PATH=/bin:/usr/bin:$PATH
  29. echo shar: "extracting 'Makefile'" '(5364 characters)'
  30. if test -f 'Makefile'
  31. then
  32.     echo shar: "will not over-write existing file 'Makefile'"
  33. else
  34. sed 's/^X//' << \SHAR_EOF > 'Makefile'
  35. X#                PCOMM
  36. X#            for a generic Unix box
  37. X
  38. X#for 80286 versions of SCO Xenix
  39. X#CFLAGS = -Od -DM_TERMINFO -Mle2 -LARGE
  40. X#LDFLAGS = -SEG 1000 -F 5000 -Mle2
  41. X#CURSES = -ltinfo -lx
  42. X#TERMLIB = -ltinfo -lx
  43. X
  44. XCFLAGS = -O
  45. XLDFLAGS = -s
  46. XSHAR = shar -a
  47. XBIN = /usr/local/bin
  48. X
  49. X#for old curses(3) or Berkeley systems
  50. X#CURSES = -lcurses -ltermcap
  51. X#TERMLIB = -ltermcap
  52. XCURSES = -lcurses
  53. XTERMLIB = -lcurses
  54. X
  55. X#for systems without getcwd(3) or getopt(3)
  56. X#GETCWD = getcwd.o
  57. X#GETOPT = getopt.o
  58. X
  59. X#for System V or Berkeley worlds
  60. X#BSD = -DBSD
  61. X#TTY = tty_ucb.o
  62. XBSD =
  63. XTTY = tty_att.o
  64. X
  65. XPCOMM = $(GETCWD) $(GETOPT) $(TTY) admin.o chg_dir.o curses.o d_delete.o \
  66. X    d_lib.o d_manual.o d_menu.o d_print.o d_prompt.o d_revise.o \
  67. X    data_log.o di_delay.o di_win.o dial.o e_lib.o expand.o help.o \
  68. X    info.o init.o list_dir.o ls_menu.o m_lib.o macro.o main.o \
  69. X    n_shell.o p_lib.o passthru.o pexit.o port.o redial.o s_axfer.o \
  70. X    s_extrnl.o s_gen.o s_menu.o s_modem.o s_prompt.o s_term.o \
  71. X    s_tty.o screen.o script.o st_line.o strings.o terminal.o x_ascii.o \
  72. X    x_batch.o x_extrnl.o x_menu.o x_rcv.o x_send.o x_win.o xmodem.o
  73. X
  74. XINPUT =    input.o vcs.o
  75. X
  76. Xall:    pcomm pcomm_input waitfor matches modem_break
  77. X
  78. Xpcomm:    $(PCOMM)
  79. X    $(CC) $(LDFLAGS) $(PCOMM) -o pcomm $(CURSES)
  80. X
  81. Xpcomm_input:    $(INPUT)
  82. X    $(CC) $(LDFLAGS) $(INPUT) -o pcomm_input $(TERMLIB)
  83. X
  84. Xwaitfor:
  85. X    $(CC) $(CFLAGS) $(BSD) $(LDFLAGS) waitfor.c -o waitfor
  86. X
  87. Xmatches:
  88. X    $(CC) $(CFLAGS) $(LDFLAGS) matches.c -o matches
  89. X
  90. Xmodem_break:
  91. X    $(CC) $(CFLAGS) $(BSD) $(LDFLAGS) modem_break.c -o modem_break
  92. X
  93. Xinstall:
  94. X    cp pcomm $(BIN)
  95. X    cp pcomm_input $(BIN)
  96. X    cp waitfor $(BIN)
  97. X    cp matches $(BIN)
  98. X    cp modem_break $(BIN)
  99. X#    rm pcomm
  100. X#    rm pcomm_input
  101. X#    rm waitfor
  102. X#    rm matches
  103. X#    rm modem_break
  104. X
  105. Xlint:
  106. X    lint -p -Dlint admin.c chg_dir.c curses.c d_delete.c d_lib.c \
  107. X    d_manual.c d_menu.c d_print.c d_prompt.c d_revise.c data_log.c \
  108. X    di_delay.c di_win.c dial.c e_lib.c expand.c getcwd.c getopt.c \
  109. X    help.c info.c init.c list_dir.c ls_menu.c m_lib.c macro.c main.c \
  110. X    n_shell.c p_lib.c passthru.c pexit.c port.c redial.c s_axfer.c \
  111. X    s_extrnl.c s_gen.c s_menu.c s_modem.c s_prompt.c s_term.c s_tty.c \
  112. X    screen.c script.c st_line.c strings.c terminal.c tty_att.c \
  113. X    x_ascii.c x_batch.c x_extrnl.c x_menu.c x_rcv.c x_send.c x_win.c \
  114. X    xmodem.c
  115. X    lint -p -Dlint input.c vcs.c
  116. X    lint -p -Dlint $(BSD) waitfor.c
  117. X    lint -p -Dlint matches.c
  118. X    lint -p -Dlint $(BSD) modem_break.c
  119. X
  120. Xshar:
  121. X    $(SHAR) Doc > pcomm_sh.1
  122. X    $(SHAR) Makefile Matches.1 Modem_break.1 Pcomm.1 Pcomm.dial_dir \
  123. X    Pcomm.extrnl Pcomm.modem Pcomm.param Readme Release.notes Sample \
  124. X    Unixpc.shar Waitfor.1 > pcomm_sh.2
  125. X    $(SHAR) admin.c chg_dir.c config.h curses.c d_delete.c d_lib.c \
  126. X    d_manual.c d_menu.c d_print.c d_prompt.c d_revise.c data_log.c \
  127. X    di_delay.c > pcomm_sh.3
  128. X    $(SHAR) di_win.c dial.c dial_dir.h e_lib.c expand.c extrnl.h \
  129. X    getcwd.c getopt.c help.c info.c init.c input.c list_dir.c \
  130. X    ls_menu.c > pcomm_sh.4
  131. X    $(SHAR) m_lib.c macro.c main.c matches.c misc.h modem.h \
  132. X    modem_break.c n_shell.c p_lib.c param.h passthru.c pexit.c \
  133. X    port.c > pcomm_sh.5
  134. X    $(SHAR) redial.c s_axfer.c s_extrnl.c s_gen.c s_menu.c s_modem.c \
  135. X    s_prompt.c s_term.c s_tty.c screen.c script.c st_line.c status.h \
  136. X    strings.c > pcomm_sh.6
  137. X    $(SHAR) terminal.c tty_att.c tty_ucb.c vcs.c vcs.h waitfor.c \
  138. X    x_ascii.c x_batch.c x_extrnl.c > pcomm_sh.7
  139. X    $(SHAR) x_menu.c x_rcv.c x_send.c x_win.c xmodem.c xmodem.h \
  140. X    > pcomm_sh.8
  141. X
  142. Xadmin.o:    config.h dial_dir.h param.h
  143. Xchg_dir.o:    config.h misc.h
  144. Xcurses.o:    config.h misc.h
  145. Xd_delete.o:    config.h dial_dir.h misc.h param.h
  146. Xd_lib.o:    dial_dir.h param.h
  147. Xd_manual.o:    config.h dial_dir.h misc.h
  148. Xd_menu.o:    config.h dial_dir.h misc.h param.h
  149. Xd_print.o:    config.h dial_dir.h misc.h
  150. Xd_prompt.o:    config.h dial_dir.h misc.h
  151. Xd_revise.o:    config.h dial_dir.h misc.h param.h
  152. Xdata_log.o:    config.h misc.h param.h status.h
  153. Xdi_delay.o:    config.h misc.h param.h
  154. Xdi_win.o:    config.h dial_dir.h misc.h modem.h param.h
  155. Xdial.o:        config.h dial_dir.h misc.h modem.h param.h
  156. Xe_lib.o:    extrnl.h
  157. Xexpand.o:    config.h
  158. Xhelp.o:        config.h misc.h
  159. Xinit.o:        config.h misc.h status.h
  160. Xinput.o:    config.h misc.h status.h vcs.h
  161. Xls_menu.o:    config.h dial_dir.h misc.h param.h
  162. Xm_lib.o:    modem.h
  163. Xmacro.o:    config.h misc.h param.h
  164. Xmain.o:        config.h dial_dir.h extrnl.h misc.h modem.h param.h status.h
  165. Xn_shell.o:    config.h
  166. Xp_lib.o:    param.h
  167. Xpassthru.o:    config.h misc.h
  168. Xpexit.o:    config.h dial_dir.h misc.h param.h status.h
  169. Xport.o:        config.h dial_dir.h modem.h
  170. Xredial.o:    config.h dial_dir.h misc.h
  171. Xs_axfer.o:    config.h misc.h param.h
  172. Xs_extrnl.o:    config.h extrnl.h misc.h
  173. Xs_gen.o:    config.h misc.h param.h
  174. Xs_menu.o:    config.h misc.h
  175. Xs_modem.o:    config.h misc.h modem.h
  176. Xs_prompt.o:    config.h misc.h
  177. Xs_term.o:    config.h misc.h param.h status.h
  178. Xs_tty.o:    config.h misc.h modem.h
  179. Xscreen.o:    config.h param.h status.h
  180. Xscript.o:    config.h dial_dir.h status.h
  181. Xst_line.o:    config.h dial_dir.h misc.h modem.h param.h status.h
  182. Xstrings.o:    config.h
  183. Xterminal.o:    config.h dial_dir.h misc.h modem.h param.h status.h xmodem.h
  184. Xtty_att.o:    dial_dir.h param.h
  185. Xtty_ucb.o:    dial_dir.h param.h
  186. Xvcs.o:        config.h vcs.h
  187. Xx_ascii.o:    config.h misc.h param.h
  188. Xx_batch.o:    config.h misc.h xmodem.h
  189. Xx_extrnl.o:    config.h
  190. Xx_menu.o:    config.h extrnl.h misc.h xmodem.h
  191. Xx_rcv.o:    config.h dial_dir.h misc.h xmodem.h
  192. Xx_send.o:    config.h dial_dir.h misc.h xmodem.h
  193. Xx_win.o:    config.h dial_dir.h misc.h xmodem.h
  194. Xxmodem.o:    config.h misc.h param.h xmodem.h
  195. X
  196. Xwaitfor:    waitfor.c
  197. Xmatches:    matches.c
  198. Xmodem_break:    modem_break.c
  199. SHAR_EOF
  200. if test 5364 -ne "`wc -c < 'Makefile'`"
  201. then
  202.     echo shar: "error transmitting 'Makefile'" '(should have been 5364 characters)'
  203. fi
  204. fi
  205. echo shar: "extracting 'Matches.1'" '(635 characters)'
  206. if test -f 'Matches.1'
  207. then
  208.     echo shar: "will not over-write existing file 'Matches.1'"
  209. else
  210. sed 's/^X//' << \SHAR_EOF > 'Matches.1'
  211. X.TH MATCHES 1 local
  212. X.SH NAME
  213. Xmatches \- test if string2 is contained in string1
  214. X.SH SYNOPSIS
  215. X.B matches string1 string2
  216. X.SH DESCRIPTION
  217. X.I Matches
  218. Xreturns a 0 if string2 is contained in string1, otherwise it returns a 1.
  219. X.PP
  220. X.I Matches
  221. Xis designed to be used by
  222. X.I Pcomm
  223. Xin a shell script for automatically logging a user onto a remote system.
  224. X.PP
  225. X.SH EXAMPLE
  226. X.nf
  227. X    # read some input
  228. X    read junk
  229. X    # test to see the string matches 'login failed'
  230. X    matches $junk 'login failed'
  231. X    # test the exit code of the matches command
  232. X    if [ $? \-eq 0 ]
  233. X    then
  234. X        exit 1
  235. X    fi
  236. X.fi
  237. X.SH "SEE ALSO"
  238. Xpcomm(1), waitfor(1), modem_break(1), Pcomm Reference Manual
  239. SHAR_EOF
  240. if test 635 -ne "`wc -c < 'Matches.1'`"
  241. then
  242.     echo shar: "error transmitting 'Matches.1'" '(should have been 635 characters)'
  243. fi
  244. fi
  245. echo shar: "extracting 'Modem_break.1'" '(836 characters)'
  246. if test -f 'Modem_break.1'
  247. then
  248.     echo shar: "will not over-write existing file 'Modem_break.1'"
  249. else
  250. sed 's/^X//' << \SHAR_EOF > 'Modem_break.1'
  251. X.TH MODEM_BREAK 1 local
  252. X.SH NAME
  253. Xmodem_break \- send a modem break
  254. X.SH SYNOPSIS
  255. X.B modem_break
  256. X.SH DESCRIPTION
  257. X.I Modem_break
  258. Xcreates a ``modem break'' on the stdout.  Modem break is a condition of
  259. Xa communications line when the line is held ``low'' for 200 ms.  It is
  260. Xtypically used to tell the remote system to switch to a different
  261. Xbaud rate.
  262. X.PP
  263. X.I Modem_break
  264. Xis designed to be used by
  265. X.I Pcomm
  266. Xin a shell script for automatically logging a user onto a remote system.
  267. X.PP
  268. X.SH EXAMPLE
  269. X.nf
  270. X    while true
  271. X    do
  272. X        # wait 5 seconds for the login prompt
  273. X        waitfor \-5 login:
  274. X        # test the exit code of the waitfor command
  275. X        if [ $? \-eq 0 ]
  276. X        then
  277. X            # send my user ID and break out of the loop
  278. X            echo egray
  279. X            break
  280. X        fi
  281. X        # send a modem break
  282. X        modem_break
  283. X    done
  284. X.fi
  285. X.SH "SEE ALSO"
  286. Xpcomm(1), waitfor(1), matches(1), Pcomm Reference Manual
  287. SHAR_EOF
  288. if test 836 -ne "`wc -c < 'Modem_break.1'`"
  289. then
  290.     echo shar: "error transmitting 'Modem_break.1'" '(should have been 836 characters)'
  291. fi
  292. fi
  293. echo shar: "extracting 'Pcomm.1'" '(8648 characters)'
  294. if test -f 'Pcomm.1'
  295. then
  296.     echo shar: "will not over-write existing file 'Pcomm.1'"
  297. else
  298. sed 's/^X//' << \SHAR_EOF > 'Pcomm.1'
  299. X.TH PCOMM 1 local
  300. X.SH NAME
  301. Xpcomm \- a telecommunication program
  302. X.SH SYNOPSIS
  303. X.B pcomm
  304. X[
  305. X.B \-d
  306. Xdirectory ] [
  307. X.B \-f
  308. Xsystem name
  309. X]
  310. X.SH DESCRIPTION
  311. X.I Pcomm
  312. Xis a public domain telecommunication program for Unix that is designed
  313. Xto operate similar to the MSDOS program, ProComm.  ProComm (TM) is
  314. Xcopyrighted by Datastorm Technologies, Inc.
  315. X.PP
  316. XThe
  317. X.I \-d
  318. Xoption is used to specify an additional path to search for the Pcomm
  319. Xsupport files.
  320. X.PP
  321. XThe
  322. X.I \-f
  323. Xoption is used to specify automatic dialing of an entry in the dialing
  324. Xdirectory.  The
  325. X.I name
  326. Xfield in the dialing directory is checked against the string given on
  327. Xthe command line.  If a match is found, that entry is automatically
  328. Xdialed.
  329. X.PP
  330. XWhenever
  331. X.I Pcomm
  332. Xis in the command mode, a status line is displayed at the bottom of the
  333. Xscreen.  The eight fields of the status line are:
  334. X.PP
  335. X.RS 5
  336. X.nf
  337. X\(bu help screen command (or a temporary message)
  338. X\(bu name of the TTY device in use
  339. X\(bu duplex mode (FDX = full duplex, HDX = half duplex)
  340. X\(bu current line settings
  341. X\(bu status of data logging option
  342. X\(bu status of printer logging option
  343. X\(bu incoming CR translation
  344. X\(bu outgoing CR translation
  345. X.fi
  346. X.RE
  347. X.SH COMMANDS
  348. XThe following commands are accessible by pressing a user definable ``hot
  349. Xkey'' followed by a letter, number, or arrow key.  The default ``hot
  350. Xkey'' is control-A.  The notation ``^A-X'' means control-A followed by
  351. Xthe letter X.  The dash (-) is for clarity, and is not a part of the
  352. Xcommand sequence.
  353. X.TP
  354. X.B ^A-0
  355. XHelp Screen.  Display a brief review of the available commands.  Uses
  356. Xthe number zero ``0'' not the letter ``O''.
  357. X.TP
  358. X.B ^A-D
  359. XDialing Directory.  The dialing directory screen is used to display and
  360. Xmaintain the database of phone number entries, and to select an entry
  361. Xfor dialing.  To dialan entry, just enter the entry number at the
  362. Xprompt.  If the ``script'' field contains valid Unix shell script, that
  363. Xfile is used to automatically log the user on to the remote system.  See
  364. Xthe Pcomm Reference Manual for the format and use of the script files.
  365. XThe following commands are available from the dialing directory:
  366. X.RS 5
  367. X.TP
  368. X.B R
  369. XRevise (or add) a dialing directory entry or a long distance dialing
  370. Xcode.
  371. X.TP
  372. X.B P
  373. XPrint (display) the long distance dialing codes.
  374. X.TP
  375. X.B up/down
  376. XScroll the dialing directory up or down 10 lines.  Uses the up and down
  377. Xarrow keys.
  378. X.TP
  379. X.B M
  380. XManual dial.  Prompts for a phone number rather than using a number
  381. Xalready in the dialing directory.
  382. X.TP
  383. X.B D
  384. XDelete an entry or a range of entries.
  385. X.TP
  386. X.B L
  387. XPrint.  Send the dialing directory to the printer or a file of your
  388. Xchoice.
  389. X.RE
  390. X.TP
  391. X.B ^A-R
  392. XAutomatic redial of selected dialing directory entries.  Prompts the
  393. Xuser for a list of directory entries to be placed in the queue.
  394. X.I Pcomm
  395. Xwill dial the numbers in a cycle until one of them answers.
  396. X.TP
  397. X.B ^A-M
  398. XAllows the user to maintain a list of keyboard macros assigned to the
  399. Xshifted number keys.  When pressed, the string assigned to that key is
  400. Xsent to the remote system.
  401. X.TP
  402. X.B ^A-P
  403. XAdjust the current communication line settings.  Display a menu of baud
  404. Xrate, parity, data bit, and stop bit choices.  Allows the new choice to
  405. Xbe saved and become the default.  After dialing a remote, the line
  406. Xsettings in the dialing directory entry are automatically used.  The
  407. Xcurrent line settings are shown in the status line.
  408. X.TP
  409. X.B ^A-X
  410. XExit from
  411. X.I Pcomm.
  412. X.TP
  413. X.B ^A-4
  414. XSpawn a Unix shell while still communicating with the remote system.
  415. XUses the ``native'' shell as described in the SHELL environmental
  416. Xvariable.
  417. X.TP
  418. X.B ^A-I
  419. XDisplay the program information screen.
  420. X.TP
  421. X.B ^A-S
  422. XDisplay a choice of setup screens.  The following sub-menus are
  423. Xavailable:
  424. X.RS 5
  425. X.TP
  426. X.B 1
  427. XTTY Setup.  This setup assigns the TTY ports that
  428. X.I Pcomm
  429. Xis allowed to use, and what is attached to each port.
  430. X.TP
  431. X.B 2
  432. XModem Setup.  The modem setup contains the commands to make the modem
  433. Xdial, hang up the phone, etc.
  434. X.TP
  435. X.B 3
  436. XTerminal Setup.  The terminal setup contains the definition of the ``hot
  437. Xkey'' and the mapping of the end-of-line characters.
  438. X.TP
  439. X.B 4
  440. XGeneral Setup.  The general setup contains the default log file name,
  441. Xand the set of character synonyms.
  442. X.TP
  443. X.B 5
  444. XASCII Transfer Setup.  This setup screen contains additional character
  445. Xtranslations allowed during ASCII file transfers.
  446. X.TP
  447. X.B 6
  448. XExternal Protocol Setup.  This setup screen allows the user to imbed the
  449. Xnames of external file transfer programs into the list of available
  450. Xprotocols.
  451. X.TP
  452. X.B S
  453. XSave the changes to disk.
  454. X.RE
  455. X.TP
  456. X.B ^A-B
  457. XChange the current working directory.
  458. X.TP
  459. X.B ^A-C
  460. XClear the local screen and home the cursor.
  461. X.TP
  462. X.B ^A-E
  463. XToggle the duplex mode from full to half, or from half to full.  The
  464. Xstatus line shows the current duplex mode.
  465. X.TP
  466. X.B ^A-H
  467. XHang up the phone.  Disconnect the phone, but remain in
  468. X.I Pcomm.
  469. X.TP
  470. X.B ^A-L
  471. XToggle the printer on and off.  Since the printer is accessed through
  472. Xthe normal Unix spool program, the output is not sent to the printer
  473. Xuntil
  474. X.B after
  475. Xthis feature is turned off.
  476. X.TP
  477. X.B ^A-3
  478. XToggle the incoming line termination characters between the carriage
  479. Xreturn and the carriage return line feed pair.  This affects the
  480. Xterminal session only, not the file transfers.  The current settings are
  481. Xshown in the status line.
  482. X.TP
  483. X.B ^A-7
  484. XSend a modem break.  This is
  485. X.B not
  486. Xthe same as the break key on the keyboard.
  487. X.TP
  488. X.B ^A-up
  489. XDisplay a menu of file transfer protocols to be used to send files to a
  490. Xremote system.  Uses the up arrow key.
  491. X.TP
  492. X.B ^A-down
  493. XDisplay file transfer protocols to be used to receive files from a
  494. Xremote system.  Uses the down arrow key.
  495. X.TP
  496. X.B ^A-F
  497. XDisplay the contents of a Unix directory.
  498. X.TP
  499. X.B ^A-G
  500. XDump the contents of the screen to a specified file.  Special graphics
  501. Xcharacters may not be represented accurately in the file.
  502. X.TP
  503. X.B ^A-1
  504. XBegin data logging.  Prompts the user for the name of the file that will
  505. Xbe used to collect a complete record of the terminal session.
  506. X.TP
  507. X.B ^A-2
  508. XToggle the data logging option without prompting for a new file name.
  509. XThe status line shows the current data logging mode.
  510. X.SH "FILE TRANSFERS"
  511. X.I Pcomm
  512. Xunderstands the following file transfer protocols:
  513. X.PP
  514. X.RS 5
  515. X.nf
  516. X.if n .ta 1.5i +1.5i +1.5i +1.5i +1.5i
  517. X.if t .ta 1i +1i +1i +1i +1i
  518. Xprotocol    packet    error    multiple
  519. Xname    size    method    files?
  520. X---------    --------    ------------    --------
  521. Xxmodem    128    checksum/CRC    no
  522. Xxmodem-1k    128/1024    checksum/CRC    no
  523. Xmodem7    128    checksum    yes
  524. Xymodem    128/1024    CRC    yes
  525. Xymodem-g    128/1024    none    yes
  526. XASCII    none    none    no
  527. Xzmodem    128/1024    CRC    yes
  528. X(external)    ?    ?    ?
  529. X.fi
  530. X.RE
  531. X.PP
  532. X.I Pcomm
  533. Xcan use an external program, such as Kermit or a proprietary program, to
  534. Xtransfer files.  Commonly used external programs (such as zmodem in the
  535. Xexample above) can have their names imbedded into the list of available
  536. Xprotocols.
  537. X.PP
  538. X.SH CONFIGURATION
  539. X.I Pcomm
  540. Xmust have access to the terminfo or termcap data for the terminal being
  541. Xused.  The minimum capabilities include a screen size of at least 80
  542. Xcolumns by 24 lines and cursor movement capabilities.  Running
  543. X.I Pcomm
  544. Xfrom terminals at relatively slow speeds (i.e. 1200 baud) will cause
  545. Xthe windows to appear sluggish.
  546. X.PP
  547. XTerminals that don't have arrow keys or systems without the newer
  548. Xversions of curses(3) will require the user to substitute the letter ``U''
  549. Xfor ``up arrow'' and ``N'' for ``down arrow''.
  550. X.PP
  551. XThere are four Pcomm support files that contain the dialing directory,
  552. Xthe external file transfer programs, the modem/TTY database, and the
  553. Xstart-up default parameters.  Users may maintain private versions of
  554. Xthese files in a directory of their choice.
  555. X.I Pcomm
  556. Xalso uses normal Unix shell scripts to perform the ``chat'' sequences
  557. Xnecessary to automatically log a user onto a remote system.
  558. X.I Pcomm
  559. Xuses the environmental variable PCOMM to search for the ``private''
  560. Xsupport file and the auto-login shell scripts.  The following directories
  561. Xare searched to find the files:
  562. X.PP
  563. X.RS 5
  564. X.nf
  565. X\(bu directory given with the \fI\-d\fP option
  566. X\(bu directory in the PCOMM environmental variable
  567. X\(bu current directory
  568. X\(bu default directory (compiled into Pcomm)
  569. X.fi
  570. X.RE
  571. X.PP
  572. XThe ``script'' field in the dialing directory serves two purposes.  The
  573. Xfirst use is to identify the shell script to use for auto-login.  The
  574. Xsecond use is to specify a TTY name for a given entry.  If the
  575. X``script'' is a valid device name, that device is used instead of
  576. Xsearching the TTY database for a free port.
  577. X.SH FILES
  578. X.nf
  579. Xpcomm.dial_dir          the dialing directory
  580. Xpcomm.extrnl            the external file transfer programs
  581. Xpcomm.modem             the modem/TTY database
  582. Xpcomm.param             the start-up default parameters
  583. X.fi
  584. X.SH "SEE ALSO"
  585. XPcomm Reference Manual, xmodem(1), mdm(1)
  586. SHAR_EOF
  587. if test 8648 -ne "`wc -c < 'Pcomm.1'`"
  588. then
  589.     echo shar: "error transmitting 'Pcomm.1'" '(should have been 8648 characters)'
  590. fi
  591. fi
  592. echo shar: "extracting 'Pcomm.dial_dir'" '(321 characters)'
  593. if test -f 'Pcomm.dial_dir'
  594. then
  595.     echo shar: "will not over-write existing file 'Pcomm.dial_dir'"
  596. else
  597. sed 's/^X//' << \SHAR_EOF > 'Pcomm.dial_dir'
  598. XDIR_1=Abbey Road;1 (512) 590-6036;2400-N-8-1;F;
  599. XDIR_2=Tel-Med-Com;555-8686;9600-E-7-1;F;
  600. XDIR_3=C Board;1 (619) 722-8724;2400-N-8-1;F;
  601. XDIR_4=Crest;1 (213) 471-2518;2400-N-8-1;F;Sample
  602. XDIR_5=Last Chance;1 (219) 762-8411;2400-E-7-1;F;
  603. XDIR_6=Killer;1 (214) 827-1994;1200-E-7-1;F;
  604. XDIR_7=System A (direct);;19200-E-7-1;F;tty12
  605. SHAR_EOF
  606. if test 321 -ne "`wc -c < 'Pcomm.dial_dir'`"
  607. then
  608.     echo shar: "error transmitting 'Pcomm.dial_dir'" '(should have been 321 characters)'
  609. fi
  610. fi
  611. echo shar: "extracting 'Pcomm.extrnl'" '(79 characters)'
  612. if test -f 'Pcomm.extrnl'
  613. then
  614.     echo shar: "will not over-write existing file 'Pcomm.extrnl'"
  615. else
  616. sed 's/^X//' << \SHAR_EOF > 'Pcomm.extrnl'
  617. XSEND_1=zmodem;sz;Y
  618. XSEND_2=;;N
  619. XSEND_3=;;N
  620. XRCV_1=zmodem;rz;N
  621. XRCV_2=;;N
  622. XRCV_3=;;N
  623. SHAR_EOF
  624. if test 79 -ne "`wc -c < 'Pcomm.extrnl'`"
  625. then
  626.     echo shar: "error transmitting 'Pcomm.extrnl'" '(should have been 79 characters)'
  627. fi
  628. fi
  629. echo shar: "extracting 'Pcomm.modem'" '(598 characters)'
  630. if test -f 'Pcomm.modem'
  631. then
  632.     echo shar: "will not over-write existing file 'Pcomm.modem'"
  633. else
  634. sed 's/^X//' << \SHAR_EOF > 'Pcomm.modem'
  635. XTTY_1=tty10;HAYES;0
  636. XTTY_2=tty11;HAYES;0
  637. XTTY_3=tty12;DIRECT;0
  638. XTTY_4=tty13;TELEBIT;0
  639. XTTY_5=tty13;FAST_TELEBIT;0
  640. XMODEM_1a=HAYES;ATS7=45S11=70E0Q0V1X4&D2!;ATDT;!;~~+++~~ATH0!
  641. XMODEM_1b=Y;CONNECT!;CONNECT 1200;CONNECT 2400;;;
  642. XMODEM_1c=BUSY;VOICE;NO CARRIER;
  643. XMODEM_2a=DIRECT;;;;
  644. XMODEM_2b=N;;;;;;
  645. XMODEM_2c=;;;
  646. XMODEM_3a=TELEBIT;%AAAAAATS50=0S2=43S95=0M1!;%AAAAAATDTW;!;~~+++~~ATH0!
  647. XMODEM_3b=Y;CONNECT 300;CONNECT 1200;CONNECT 2400;;;
  648. XMODEM_3c=BUSY;ERROR;NO CARRIER;
  649. XMODEM_4a=FAST_TELEBIT;%AAAAAATS50=255S2=43S95=0M1!;%AAAAAATDTW;!;~~+++~~ATH0!
  650. XMODEM_4b=N;;;;;CONNECT;CONNECT
  651. XMODEM_4c=BUSY;ERROR;NO CARRIER;
  652. SHAR_EOF
  653. if test 598 -ne "`wc -c < 'Pcomm.modem'`"
  654. then
  655.     echo shar: "error transmitting 'Pcomm.modem'" '(should have been 598 characters)'
  656. fi
  657. fi
  658. echo shar: "extracting 'Pcomm.param'" '(453 characters)'
  659. if test -f 'Pcomm.param'
  660. then
  661.     echo shar: "will not over-write existing file 'Pcomm.param'"
  662. else
  663. sed 's/^X//' << \SHAR_EOF > 'Pcomm.param'
  664. XD_BAUD=1200
  665. XD_PARITY=E
  666. XD_DBITS=7
  667. XD_SBITS=1
  668. XHOT=1
  669. XASCII_HOT=^A
  670. XD_DUPLEX=FULL
  671. XFLOW=XON/XOFF
  672. XCR_IN=CR
  673. XCR_OUT=CR
  674. XLOGFILE=pcomm.log
  675. XDUMPFILE=pcomm.dump
  676. XSTRIP=YES
  677. XPAUSE_CHAR=~
  678. XCR_CHAR=!
  679. XCTRL_CHAR=^
  680. XESC_CHAR=|
  681. XBRK_CHAR=%
  682. XABORT=KEEP
  683. XC_DELAY=35
  684. XR_DELAY=5
  685. XLECHO=NO
  686. XEXPAND=NO
  687. XCR_DELAY=0
  688. XPACE=NO
  689. XCR_UP=NONE
  690. XLF_UP=ADD CR
  691. XTIMER=5
  692. XCR_DN=STRIP
  693. XLF_DN=NONE
  694. XLD_PLUS=
  695. XLD_MINUS=
  696. XLD_AT=8,
  697. XLD_POUND=9
  698. XMAC_1=hello
  699. XMAC_2=
  700. XMAC_3=
  701. XMAC_4=
  702. XMAC_5=
  703. XMAC_6=
  704. XMAC_7=
  705. XMAC_8=
  706. XMAC_9=
  707. XMAC_0=
  708. SHAR_EOF
  709. if test 453 -ne "`wc -c < 'Pcomm.param'`"
  710. then
  711.     echo shar: "error transmitting 'Pcomm.param'" '(should have been 453 characters)'
  712. fi
  713. fi
  714. echo shar: "extracting 'Readme'" '(7963 characters)'
  715. if test -f 'Readme'
  716. then
  717.     echo shar: "will not over-write existing file 'Readme'"
  718. else
  719. sed 's/^X//' << \SHAR_EOF > 'Readme'
  720. X
  721. X                  Pcomm
  722. X              A Unix Telecommunication Program
  723. X
  724. XThings to do first:
  725. X
  726. X    1) Figure out what files you need.  There is a shell archive
  727. X    called "Unixpc.shar" that contains additional (and replacement)
  728. X    files for users of the AT&T Unix PC 7300/3b1.
  729. X
  730. X    2) Create a default directory where the Pcomm support files will
  731. X    go.  A good location might be /usr/local/lib/pcomm.
  732. X
  733. X    3) Copy the sample support files Pcomm.dial_dir, Pcomm.extrnl,
  734. X    Pcomm.modem, and Pcomm.param to the default directory and rename
  735. X    them to change the upper case "P" to a lower case "p".  The files
  736. X    should *not* have write permission to all.
  737. X
  738. X    4) Copy (and rename as appropriate) the Pcomm.1, Waitfor.1, 
  739. X    Matches.1, and Modem_break.1 nroff manuals to the proper /usr/man
  740. X    directory.
  741. X
  742. X    5) Print the Doc file by piping the output of the Unix "pr"
  743. X    command with the title separated by lots of white space (to help
  744. X    center it), for example:
  745. X
  746. X    pr -h "           Pcomm Reference Manual        " Doc | lp
  747. X
  748. XHow to configure Pcomm:
  749. X
  750. X    1) Edit the "config.h" file to suit your system's needs and your
  751. X    personal taste.  Sites running HoneyDanBer (HDB) UUCP should pay
  752. X    particular attention to the LOCK_DIR, ASCII_PID, and SETUGID
  753. X    definitions.  The definitions in config.h are:
  754. X
  755. X    BSD        Define if you're using a Berkeley flavor of Unix.
  756. X            You will have to edit the Makefile in several
  757. X            places.
  758. X
  759. X    UNIXPC        If defined, use the dial(3) routines specific
  760. X            to the AT&T Unix PC 7300/3b1.  Useful only if
  761. X            the On Board Modem (OBM) is to be used.
  762. X
  763. X    OLDCURSES    If defined, use the older version of curses(3).
  764. X            (uses termcap in lieu of terminfo).
  765. X
  766. X    SHAREDMEM    If defined, keeps the virtual screen area in
  767. X            shared memory rather than in a file.
  768. X
  769. X    NOPROMOTE    If defined, do not promote missing video
  770. X            attributes to standout.  Normally, curses(3)
  771. X            attempts to compensate for missing attributes.
  772. X
  773. X    SETUGID        If defined, extra precautions are taken before
  774. X            opening files or doing a shell escape to restore
  775. X            the real UID/GID.  Useful if Pcomm is installed
  776. X            as a set-user-id or get-group-id program.  HDB
  777. X            programs often are set-user-id to uucp.
  778. X
  779. X    LOG_CALLS    If defined, Pcomm will keep an administrative log
  780. X            of all calls.  The log contains the name of the
  781. X            person making the call, the phone number, and a
  782. X            date/time stamp.  Useful for verifying long
  783. X            distance phone bills.
  784. X
  785. X    LOGFILE        The path to the log file (if LOG_CALLS is
  786. X            defined).  It should have write permission to
  787. X            all or be writeable under set-user/group-id
  788. X            conditions.
  789. X
  790. X    LIMIT_LD    If defined, Pcomm will limit long distance
  791. X            (toll) calls to a privileged group.  The file
  792. X            "admin.c" may require tweaking to detect long
  793. X            distance numbers.
  794. X
  795. X    GROUP_NAME    The name of the group that is allowed to make
  796. X            long distance calls (if LIMIT_LD is defined).
  797. X
  798. X    LPR        The path to the line printer program (this is
  799. X            not the name of the device).
  800. X
  801. X    LPRINT        The path to the "pretty" line printer program.
  802. X            Typically a program that performs a "pr | lp"
  803. X            function.  If none exist, use "pr | lp".
  804. X
  805. X    DEFAULT_DIR    The path to the directory that contains the
  806. X            default Pcomm support files.
  807. X
  808. X    LOCK_DIR    The path to the directory where the UUCP lock
  809. X            files are found.  On HDB systems this could
  810. X            be /usr/spool/locks or /usr/spool/uucp.
  811. X
  812. X    ASCII_PID    If defined, the lock files will contain an ASCII
  813. X            encoded process id (PID).  On HDB systems this
  814. X            is the default.
  815. X
  816. X    XENIX_LOCKS    If defined, the last letter of the device name
  817. X            is folded to lower case when creating the lock
  818. X            file.  Newer version of XENIX may require this.
  819. X
  820. X    KEEP_PORT    If defined, the port will be kept open between
  821. X            dialing attempts to save time.  Some systems
  822. X            may require the modem to be closed and reopened
  823. X            every time.
  824. X
  825. X    XMC_BROKE    Does the status line scroll up when using "magic
  826. X            cookie" terminals?  Some Pyramid and AT&T
  827. X            systems may require this to be defined.  Find a
  828. X            magic cookie terminal (a Wyse 50 for example),
  829. X            and see what happens.
  830. X
  831. X    WGETCH_BROKE    Does the alarm() system call work correctly with
  832. X            the wgetch() function?  Some Masscomp systems
  833. X            will require this to be defined.  Symptom: the
  834. X            initial screen doesn't go away by itself after 5
  835. X            seconds.
  836. X
  837. X    CLIST_SIZ    The size of the serial port character buffer.
  838. X            The default is 64.
  839. X
  840. X    INPUT_BUF    The size of the input buffer (should be about the
  841. X            same size as CLIST_SIZ).  The default is 64.
  842. X
  843. X    OUTPUT_BUF    The size of the output buffer (should be about
  844. X            one half INPUT_BUF).  The default is 32.  Systems
  845. X            without dedicated I/O processors may require a
  846. X            very small INPUT_BUF value to avoid the problem
  847. X            of a "choppy" display.
  848. X
  849. X    MEMMOVE        The name of the memory copy routine (if none,
  850. X            then use "#undef MEMMOVE").  The default is
  851. X            "memmove", although quite a few versions of
  852. X            "memcpy" will work (if they correctly handle
  853. X            target and source overlap).
  854. X
  855. X    SETUID_BROKE    Does your version of Unix allow you to flip-flop
  856. X            back and forth between the real and effective
  857. X            user (or group) ID?  Some Masscomp systems will
  858. X            require this to be set.
  859. X
  860. X    2) Edit the Makefile.  There are provisions in the Makefile to
  861. X    include getcwd(3) and getopt(3) routines if they are missing
  862. X    from your system.  You may want to customize the CFLAGS,
  863. X    LDFLAGS, and BIN assignments to suit your needs.
  864. X
  865. X    If compiling under Berkeley Unix, you will have to edit the
  866. X    Makefile on the following lines:
  867. X
  868. X        #for old curses(3) or Berkeley systems
  869. X        CURSES = -lcurses -ltermcap
  870. X        TERMLIB = -ltermcap
  871. X        #CURSES = -lcurses
  872. X        #TERMLIB = -lcurses
  873. X
  874. X        #for System V or Berkeley worlds
  875. X        BSD = -DBSD
  876. X        TTY = tty_ucb.o
  877. X        #BSD =
  878. X        #TTY = tty_att.o
  879. X
  880. X    All the defaults in config.h assume a AT&T flavor of Unix, sorry
  881. X    about that...
  882. X
  883. X    3) Compile pcomm and pcomm_input.  Type "make".  The "make
  884. X    install" option will attempt to copy "pcomm" and "pcomm_input"
  885. X    into the BIN directory given in the Makefile.  However, those
  886. X    sites running HDB UUCP software may require that you to change
  887. X    the mode of "pcomm" to be set-user-id to uucp.  DO NOT CHANGE
  888. X    THE SET-UID/GID BITS ON THE "pcomm_input" PROGRAM.
  889. X
  890. X    Three external programs (waitfor, matches, and modem_break) are
  891. X    included in the distribution to help in creating auto-login
  892. X    shell scripts.
  893. X
  894. X    4) Update the sample modem/TTY database.  I know I'm asking the
  895. X    impossible, but...  Read section 3 and the Appendices of the Doc
  896. X    file first, then run Pcomm to update the modem/TTY database by
  897. X    using the TTY Setup and the Modem Setup menues.  You will need
  898. X    to know:
  899. X
  900. X        o The types and number of modems available for dial out
  901. X        o The TTY ports attached to the modems
  902. X        o The range of baud rates at which the modems operate
  903. X        o How to initialize the modems to suit Pcomm's needs
  904. X        o How to make the modems dial
  905. X
  906. X    During this step, you will need write permission on the support
  907. X    files in the default directory.  RESIST THE TEMPTATION TO EDIT
  908. X    THE SUPPORT FILES DIRECTLY.
  909. X
  910. XPortability considerations:
  911. X
  912. X    1) Pcomm makes use of the bold, blinking and standout video
  913. X    attributes.  My concept of "standout" and "reverse" might be
  914. X    different than yours (I like "standout" to be a brighter version
  915. X    of "reverse").  Some very old versions of curses will ignore the
  916. X    standout mode if you're on a magic cookie terminal.
  917. X
  918. X    2) The "port.c" file has a place where you can include your own
  919. X    routine to toggle the getty process on a port (if required).
  920. X
  921. X    3) If you compile Pcomm with LOG_CALLS defined, you'll have to
  922. X    look at the code in "admin.c" to see if the long distance
  923. X    detection routine is correct for your site.
  924. X
  925. X    4) Compilers that adhere to the ANSI C Standard will complain at
  926. X    the declarations of perror(), malloc(), fread(), fwrite(), etc.
  927. X    There is a "typedef SIG_TYPE" in the config.h file to help
  928. X    silence the compiler's warning messages about the signal()
  929. X    return value.
  930. X
  931. XEmmet P. Gray                US Army, HQ III Corps & Fort Hood
  932. X...!uunet!uiucuxc!fthood!egray        Attn: AFZF-DE-ENV
  933. X                    Directorate of Engineering & Housing
  934. X                    Environmental Management Office
  935. X                    Fort Hood, TX 76544-5057
  936. SHAR_EOF
  937. if test 7963 -ne "`wc -c < 'Readme'`"
  938. then
  939.     echo shar: "error transmitting 'Readme'" '(should have been 7963 characters)'
  940. fi
  941. fi
  942. echo shar: "extracting 'Release.notes'" '(8624 characters)'
  943. if test -f 'Release.notes'
  944. then
  945.     echo shar: "will not over-write existing file 'Release.notes'"
  946. else
  947. sed 's/^X//' << \SHAR_EOF > 'Release.notes'
  948. X
  949. X                 Pcomm version 1.2
  950. X                 4 Feb 89
  951. X
  952. XCompatibilities with v1.1:
  953. X
  954. X    The support files used with the v1.1 release are compatible with
  955. X    the v1.2 release.  However, the use of the "index" field (now
  956. X    called the "script" field) in the pcomm.dial_dir file has
  957. X    changed dramatically (see below).
  958. X
  959. XThings that have changed:
  960. X
  961. X    Berkeley flavors of Unix are now supported.  There are files
  962. X    called tty_att.c and tty_ucb.c that contain the code specific
  963. X    to the AT&T and Berkeley worlds.  See the config.h file for
  964. X    the BSD pre-processor definition.
  965. X
  966. X    Auto-login scripts are now supported.  If the script field of
  967. X    the dialing directory contains the name of a valid Unix shell
  968. X    script, that shell script is "played" after the connection is
  969. X    made to perform the auto-login "chat" sequences.  A example of a
  970. X    auto-login Bourne shell script (called Sample) is included in
  971. X    the distribution.
  972. X
  973. X    Three new external programs.  In order to assist in the creation
  974. X    of the auto-login shell scripts, three external programs are
  975. X    included in the distribution.
  976. X
  977. X        waitfor - wait for a string, return a 1 if timed out
  978. X        matches - test if string2 is contained in string1
  979. X        modem_break - send a modem break
  980. X
  981. X    There is a new support file called "pcomm.extrnl" that allows
  982. X    the user to imbed the names of external file transfer programs
  983. X    into the list of available protocols.  (The default file
  984. X    "Pcomm.extrnl", supplied with the distribution package, contains
  985. X    definitions for zmodem).
  986. X
  987. X    The pcomm.input program has been changed to use multiple
  988. X    character buffered writes to the screen.  Both the input and
  989. X    output buffer sizes are tunable parameters in config.h
  990. X
  991. X    Newer versions of Xenix have changed the rules for creating UUCP
  992. X    lock files.  See the config.h file for the description of
  993. X    XENIX_LOCKS.
  994. X
  995. X    The -f option now looks at the name field of the dialing
  996. X    directory (rather than the index field).  A match is found when
  997. X    the argument to the -f is contained in a name field (an exact
  998. X    match is not required).  The match does not consider upper and
  999. X    lower case differences as significant.
  1000. X
  1001. XKnown limitations:
  1002. X
  1003. X    The detection of VCS (video command sequences) is still limited
  1004. X    to a very small subset of possible commands.
  1005. X
  1006. X    For the VCS emulation to work, the terminfo entries on the host
  1007. X    machine must match the entries on the remote.  (Don't assume 
  1008. X    your vt100 terminfo data is identical to someone else's).
  1009. X
  1010. X    The disp_tty() routine in s_tty.c currently does not support a
  1011. X    NUM_TTY definition of greater than 10.
  1012. X
  1013. XFuture directions:
  1014. X    
  1015. X    That's about it folks...
  1016. X
  1017. X    If Pcomm grows any more, I'll break the setup routines out as a
  1018. X    separate program.
  1019. X
  1020. XMany thanks to the following people (and many others) for bug reports
  1021. Xand suggested improvements to the code.
  1022. X
  1023. X    Andy Fyfe        ...ames!elroy!cit-vax!andy
  1024. X    Brian Antoine        ...iscuva!tau-ceti!briana
  1025. X    Chad R. Larson        ...ncar!noao!nud!anasaz!dcfinc!chad
  1026. X    David MacKenzie        ...uunet!rocky2.rockefeller.edu!edf
  1027. X    Gary S. Trujillo    ...{linus,bbn,m2c}!spdcc!gnosys!gst
  1028. X    George Pontis        ...uunet!moldev!geo
  1029. X    J. Eric Townsend    ...uunet!nuchat!flatline!erict
  1030. X    Jim Pickering        ...csun!polyslo!rducky!jrp
  1031. X    Jim Sanchez        ...uunet!mcvax!syteke!jim
  1032. X    Jonathan Bayer        ...uunet!ispi!jbayer
  1033. X    MAJ Dave Dockstader    ...twsc4sac@mater1.arpa
  1034. X    Michael Brady        ...sun!portal!cup.portal.com!michealnc
  1035. X
  1036. X-------------------------------------------------------------------------------
  1037. X
  1038. X                 Pcomm version 1.1
  1039. X                21 Aug 88
  1040. X
  1041. XIncompatibilities with v1.0:
  1042. X
  1043. X    I've added a few more fields to the pcomm.param and pcomm.modem
  1044. X    files.  This means that those files created under previous
  1045. X    releases will not be compatible with the v1.1 release.  It might
  1046. X    be a good idea to abandon the older files and start over with
  1047. X    the sample files in this release.
  1048. X
  1049. XThings that have changed:
  1050. X
  1051. X    An awful lot of sloppy programming on my part has now been
  1052. X    cleaned up.  This means that porting Pcomm to different versions
  1053. X    of Unix will be considerably less painful than before.
  1054. X
  1055. X    All of the tunable parameters are now in "config.h".
  1056. X
  1057. X    Pcomm now uses buffered I/O routines.  This yields higher
  1058. X    performance I/O at large baud rates.
  1059. X
  1060. X    File transfers now use high performance CRC calculations.
  1061. X
  1062. X    If a UUCP lockfile does exist, Pcomm now attempts to determine
  1063. X    if the process is still active.
  1064. X
  1065. X    An external file transfer program can be invoked from the file
  1066. X    transfer menu.
  1067. X
  1068. X    The keyboard macro feature is now supported (although it is
  1069. X    rather crude).
  1070. X
  1071. X    The virtual screen routine now understands a limited subset of
  1072. X    escape sequences.
  1073. X
  1074. X    The virtual screen can now be held in shared memory or in a file.
  1075. X
  1076. X    The input routine is now contained in a separate program called
  1077. X    pcomm_input.
  1078. X
  1079. X    You can now include a "modem break" in a dial or initialization
  1080. X    string.
  1081. X
  1082. X    A separate "initialization speed" feature was added to support
  1083. X    9600 baud modems such as the Telebit Trailblazer.  See Appendix
  1084. X    C of the Doc file for more info on the use of this feature.
  1085. X
  1086. X    I've added a transparent pass through mode to be used in a
  1087. X    communications daisy chain.
  1088. X
  1089. XKnown limitations:
  1090. X
  1091. X    Whenever Pcomm makes the transition from the terminal mode to
  1092. X    the command mode, the true screen contents are lost.  Pcomm
  1093. X    tries to keep track of what the true screen looks like in an
  1094. X    internal "virtual screen".  This means that the escape sequences
  1095. X    known to the hardware have to be emulated in the virtual screen.
  1096. X    Unfortunately, the number of escape sequences that are emulated
  1097. X    is quite small, so the representation of the true screen is
  1098. X    sometimes wrong.
  1099. X
  1100. X    For the VCS (video command sequence) emulation to work, the
  1101. X    terminfo entries on the host machine must match the entries on
  1102. X    the remote.
  1103. X
  1104. X    The disp_tty() routine in s_tty.c currently does not support a
  1105. X    NUM_TTY definition of greater than 10.
  1106. X
  1107. XFuture directions:
  1108. X
  1109. X    Continue work on the virtual screen routines.
  1110. X
  1111. X    Add dial back support.
  1112. X
  1113. X    Use shared memory to overcome the current limitation of outgoing
  1114. X    characters in the half duplex mode not appearing in the virtual
  1115. X    screen, log files, and print logs.
  1116. X
  1117. XMany thanks to the following people for bug reports and ideas for
  1118. Ximproving the code:
  1119. X
  1120. X    Andy Pitts    ...{mtune,pacbell,kd4nc}!gladys!rbdc!andy
  1121. X    Chris Wiener    ...ihnp4!{killer,attnssc}!crlabs!cwiener
  1122. X    David Brierley    ...{sun,decuac,cbosgd,gatech,necntc,ukma}!rayssd!dhb
  1123. X    Karl Fox    ...cbosgd!mstar!karl
  1124. X    Michael Young    ...panda!genrad!mrst!sdti!mjy
  1125. X    Mark Mendel    ...ihnp4!umn-cs!hyper!mark
  1126. X    Viet Hoang    ...ihnp4!drutx!vgh
  1127. X
  1128. X--------------------------------------------------------------------------------
  1129. X
  1130. X                 Pcomm version 1.0
  1131. X                12 Mar 88
  1132. X
  1133. XIncompatibilities with the beta release:
  1134. X
  1135. X    I've added a bunch of new parameters to the pcomm.param and
  1136. X    pcomm.modem files, so the files used with the beta release won't
  1137. X    work with the v1.0 release.
  1138. X
  1139. XThings that have changed:
  1140. X
  1141. X    Pcomm will attempt to determine if the modem has synchronized at
  1142. X    a baud rate different than what is expected, and make changes to
  1143. X    the line settings as appropriate.
  1144. X
  1145. X    The quit and interrupt signals are now ignored.
  1146. X
  1147. X    All of the file transfer protocols are now functional.
  1148. X
  1149. X    The directory search order used to find the support files has
  1150. X    been changed slightly.
  1151. X
  1152. XKnown limitations:
  1153. X
  1154. X    The keyboard macro feature is not implemented at this time.
  1155. X
  1156. X    The true screen contents are lost when the "hot key" is pressed.
  1157. X    Pcomm attempts to compensate (rather poorly) by repainting a
  1158. X    virtual screen of what it thinks the true screen should look
  1159. X    like.  Escape sequences in the virtual screen image will be
  1160. X    ignored when the background is repainted.  For example, if
  1161. X    you're on a vt100 and you receive a ^[[2J to clear the screen,
  1162. X    the screen *will* be cleared...  but when the screen is
  1163. X    repainted, it will contain the characters ^[, [, 2, J (instead
  1164. X    of performing the function).
  1165. X
  1166. X    The disp_tty() routine in s_tty.c currently does not support a
  1167. X    NUM_TTY definition of greater than 10.
  1168. X
  1169. X    For some strange reason, the first keystroke is "lost" after a
  1170. X    file transfer is complete or after starting data logging.
  1171. X
  1172. XFuture directions:
  1173. X
  1174. X    The virtual screen routines need a lot of work.  The most
  1175. X    commonly used escape sequences (known to terminfo) will be
  1176. X    processed.
  1177. X
  1178. X    I plan to have an option at compile time to have the virtual
  1179. X    screen buffer held on disk [] or in shared memory [].
  1180. X
  1181. X    The input routine is designed so it could be a standalone
  1182. X    program that gets called from Pcomm. []
  1183. X
  1184. X-------------------------------------------------------------------------------
  1185. X
  1186. XHave fun...
  1187. X
  1188. XEmmet P. Gray                US Army, HQ III Corps & Fort Hood
  1189. X...!uunet!uiucuxc!fthood!egray        Attn: AFZF-DE-ENV
  1190. X                    Directorate of Engineering & Housing
  1191. X                    Environmental Management Office
  1192. X                    Fort Hood, TX 76544-5057
  1193. SHAR_EOF
  1194. if test 8624 -ne "`wc -c < 'Release.notes'`"
  1195. then
  1196.     echo shar: "error transmitting 'Release.notes'" '(should have been 8624 characters)'
  1197. fi
  1198. fi
  1199. echo shar: "extracting 'Sample'" '(994 characters)'
  1200. if test -f 'Sample'
  1201. then
  1202.     echo shar: "will not over-write existing file 'Sample'"
  1203. else
  1204. sed 's/^X//' << \SHAR_EOF > 'Sample'
  1205. X:
  1206. X#
  1207. X# This is a sample Bourne shell script to log a user onto a remote system.
  1208. X# Things to remember:
  1209. X#    1) Script files should have permissions of 700, to prevent others
  1210. X#    from gaining access to your passwords to remote systems.
  1211. X#    2) The return codes for waitfor are: 0=success, 1=timed out, and
  1212. X#    -1=error.
  1213. X#
  1214. Xecho ""
  1215. Xtry=0
  1216. X# loop until done
  1217. Xwhile true
  1218. Xdo
  1219. X    # wait 5 seconds for the login prompt
  1220. X    waitfor -5 ogin:
  1221. X    # test the exit code of the waitfor command
  1222. X    if [ "$?" -eq 0 ]
  1223. X    then
  1224. X        # send my user ID and exit the loop
  1225. X        echo "egray"
  1226. X        break
  1227. X    fi
  1228. X
  1229. X    # increment the number of attempts
  1230. X    try=`expr $try + 1`
  1231. X    # test to see if we should give up
  1232. X    if [ "$try" -eq 5 ]
  1233. X    then
  1234. X        exit 1
  1235. X    fi
  1236. X
  1237. X    # send a modem break and loop again
  1238. X    modem_break
  1239. X    echo ""
  1240. Xdone
  1241. X# wait 5 seconds for the password prompt
  1242. Xwaitfor -5 assword:
  1243. X# test the return code from waifor
  1244. Xif [ "$?" -eq 0 ]
  1245. Xthen
  1246. X    # send my password (you're crazy if you think that's my real password)
  1247. X    echo "abcdefg"
  1248. Xelse
  1249. X    exit 1
  1250. Xfi
  1251. X# return to Pcomm
  1252. Xexit 0
  1253. SHAR_EOF
  1254. if test 994 -ne "`wc -c < 'Sample'`"
  1255. then
  1256.     echo shar: "error transmitting 'Sample'" '(should have been 994 characters)'
  1257. fi
  1258. fi
  1259. echo shar: "extracting 'Unixpc.shar'" '(17190 characters)'
  1260. if test -f 'Unixpc.shar'
  1261. then
  1262.     echo shar: "will not over-write existing file 'Unixpc.shar'"
  1263. else
  1264. sed 's/^X//' << \SHAR_EOF > 'Unixpc.shar'
  1265. X#! /bin/sh
  1266. X# This is a shell archive, meaning:
  1267. X# 1. Remove everything above the #! /bin/sh line.
  1268. X# 2. Save the resulting text in a file.
  1269. X# 3. Execute the file with /bin/sh (not csh) to create:
  1270. X#    Ifile.sh
  1271. X#    Ifile30.sh
  1272. X#    Makefile
  1273. X#    Pcomm.modem
  1274. X#    Readme.7300
  1275. X#    config.h
  1276. X# This archive created: Tue Jan 31 09:03:21 1989
  1277. Xexport PATH; PATH=/bin:/usr/bin:$PATH
  1278. Xecho shar: "extracting 'Ifile.sh'" '(705 characters)'
  1279. Xif test -f 'Ifile.sh'
  1280. Xthen
  1281. X    echo shar: "will not over-write existing file 'Ifile.sh'"
  1282. Xelse
  1283. Xsed 's/^X//' << \SHAR_EOF > 'Ifile.sh'
  1284. XXex - $1 << EOF
  1285. XX1,\$s/^PC/xPC/
  1286. XX1,\$s/^BC/xBC/
  1287. XX1,\$s/^UP/xUP/
  1288. XX1,\$s/^ospeed/xospeed/
  1289. XX1,\$s/^LINES/xLINES/
  1290. XX1,\$s/^COLS/xCOLS/
  1291. XX1,\$s/^tgetflag/xtgetflag/
  1292. XX1,\$s/^tgetent/xtgetent/
  1293. XX1,\$s/^tgetstr/xtgetstr/
  1294. XX1,\$s/^tgetnum/xtgetnum/
  1295. XX1,\$s/^tgoto/xtgoto/
  1296. XX1,\$s/^tputs/xtputs/
  1297. XX1,\$s/^wrefresh/xwrefresh/
  1298. XX1,\$s/^initscr/xinitscr/
  1299. XX1,\$s/^cbreak/xcbreak/
  1300. XX1,\$s/^nl/xnl/
  1301. XX1,\$s/^flushinp/xflushinp/
  1302. XX1,\$s/^noecho/xnoecho/
  1303. XX1,\$s/^savetty/xsavetty/
  1304. XX1,\$s/^resetty/xresetty/
  1305. XX1,\$s/^echo/xecho/
  1306. XX1,\$s/^nocbreak/xnocbreak/
  1307. XX1,\$s/^nonl/xnonl/
  1308. XX1,\$s/^keypad/xkeypad/
  1309. XX1,\$s/^endwin/xendwin/
  1310. XX1,\$s/^printw/xprintw/
  1311. XX1,\$s/^fixterm/xfixterm/
  1312. XX1,\$s/^resetterm/xresetterm/
  1313. XX1,\$s/^setterm/xsetterm/
  1314. XX1,\$s/^baudrate/xbaudrate/
  1315. XXw
  1316. XXq
  1317. XXEOF
  1318. XSHAR_EOF
  1319. Xif test 705 -ne "`wc -c < 'Ifile.sh'`"
  1320. Xthen
  1321. X    echo shar: "error transmitting 'Ifile.sh'" '(should have been 705 characters)'
  1322. Xfi
  1323. Xfi
  1324. Xecho shar: "extracting 'Ifile30.sh'" '(254 characters)'
  1325. Xif test -f 'Ifile30.sh'
  1326. Xthen
  1327. X    echo shar: "will not over-write existing file 'Ifile30.sh'"
  1328. Xelse
  1329. Xsed 's/^X//' << \SHAR_EOF > 'Ifile30.sh'
  1330. XXex - $1 << EOF
  1331. XX1,\$s/^PC/xPC/
  1332. XX1,\$s/^BC/xBC/
  1333. XX1,\$s/^UP/xUP/
  1334. XX1,\$s/^ospeed/xospeed/
  1335. XX1,\$s/^LINES/xLINES/
  1336. XX1,\$s/^COLS/xCOLS/
  1337. XX1,\$s/^wrefresh/xwrefresh/
  1338. XX1,\$s/^initscr/xinitscr/
  1339. XX1,\$s/^endwin/xendwin/
  1340. XX1,\$s/^printw/xprintw/
  1341. XX1,\$s/^setterm/xsetterm/
  1342. XXw
  1343. XXq
  1344. XXEOF
  1345. XSHAR_EOF
  1346. Xif test 254 -ne "`wc -c < 'Ifile30.sh'`"
  1347. Xthen
  1348. X    echo shar: "error transmitting 'Ifile30.sh'" '(should have been 254 characters)'
  1349. Xfi
  1350. Xfi
  1351. Xecho shar: "extracting 'Makefile'" '(5239 characters)'
  1352. Xif test -f 'Makefile'
  1353. Xthen
  1354. X    echo shar: "will not over-write existing file 'Makefile'"
  1355. Xelse
  1356. Xsed 's/^X//' << \SHAR_EOF > 'Makefile'
  1357. XX#                Pcomm
  1358. XX#            for AT&T Unix PC 7300/3b1
  1359. XX
  1360. XXCFLAGS = -O
  1361. XXLD = ld -s
  1362. XXSHAR = shar -a
  1363. XXBIN = /usr/local/bin
  1364. XXSHAREDLIB = shlib_c.ifile
  1365. XXCURSES = -lcurses
  1366. XX
  1367. XX#for Unix 3.0
  1368. XX#OTHERS = doprnt.o
  1369. XX#IFILE = Ifile30.sh
  1370. XXOTHERS = setvbuf.o doprnt.o
  1371. XXIFILE = Ifile.sh
  1372. XX
  1373. XXPCOMM = $(OTHERS) tty_att.o admin.o chg_dir.o curses.o d_delete.o \
  1374. XX    d_lib.o d_manual.o d_menu.o d_print.o d_prompt.o d_revise.o \
  1375. XX    data_log.o di_delay.o di_win.o dial.o e_lib.o expand.o help.o \
  1376. XX    info.o init.o list_dir.o ls_menu.o m_lib.o macro.o main.o \
  1377. XX    n_shell.o p_lib.o passthru.o pexit.o port.o redial.o s_axfer.o \
  1378. XX    s_extrnl.o s_gen.o s_menu.o s_modem.o s_prompt.o s_term.o \
  1379. XX    s_tty.o screen.o script.o st_line.o strings.o terminal.o x_ascii.o \
  1380. XX    x_batch.o x_extrnl.o x_menu.o x_rcv.o x_send.o x_win.o xmodem.o
  1381. XX
  1382. XXINPUT =    $(OTHERS) input.o vcs.o
  1383. XX
  1384. XXall:    pcomm pcomm_input waitfor matches modem_break
  1385. XX
  1386. XXpcomm:    $(PCOMM) $(SHAREDLIB)
  1387. XX    $(LD) $(PCOMM) $(CURSES) /lib/crt0s.o $(SHAREDLIB) -o pcomm
  1388. XX
  1389. XXpcomm_input:    $(INPUT) $(SHAREDLIB)
  1390. XX    $(LD) $(INPUT) $(CURSES) /lib/crt0s.o $(SHAREDLIB) -o pcomm_input
  1391. XX
  1392. XXwaitfor:    waitfor.o
  1393. XX    $(LD) waitfor.o /lib/crt0s.o /lib/shlib.ifile -o waitfor
  1394. XX
  1395. XXmatches:    matches.o
  1396. XX    $(LD) matches.o /lib/crt0s.o /lib/shlib.ifile -o matches
  1397. XX
  1398. XXmodem_break:    modem_break.o
  1399. XX    $(LD) modem_break.o /lib/crt0s.o /lib/shlib.ifile -o modem_break
  1400. XX
  1401. XXsetvbuf.o:
  1402. XX    ar x /lib/libc.a setvbuf.o
  1403. XX
  1404. XXdoprnt.o:
  1405. XX    ar x /lib/libc.a doprnt.o
  1406. XX
  1407. XXshlib_c.ifile:
  1408. XX    cp /lib/shlib.ifile shlib_c.ifile
  1409. XX    sh $(IFILE) shlib_c.ifile
  1410. XX
  1411. XXinstall:
  1412. XX    cp pcomm $(BIN)
  1413. XX    cp pcomm_input $(BIN)
  1414. XX    cp waitfor $(BIN)
  1415. XX    cp matches $(BIN)
  1416. XX    cp modem_break $(BIN)
  1417. XX#    rm pcomm
  1418. XX#    rm pcomm_input
  1419. XX#    rm waitfor
  1420. XX#    rm matches
  1421. XX#    rm modem_break
  1422. XX
  1423. XXlint:
  1424. XX    lint -p -Dlint admin.c chg_dir.c curses.c d_delete.c d_lib.c \
  1425. XX    d_manual.c d_menu.c d_print.c d_prompt.c d_revise.c data_log.c \
  1426. XX    di_delay.c di_win.c dial.c e_lib.c expand.c getcwd.c getopt.c \
  1427. XX    help.c info.c init.c list_dir.c ls_menu.c m_lib.c macro.c main.c \
  1428. XX    n_shell.c p_lib.c passthru.c pexit.c port.c redial.c s_axfer.c \
  1429. XX    s_extrnl.c s_gen.c s_menu.c s_modem.c s_prompt.c s_term.c s_tty.c \
  1430. XX    screen.c script.c st_line.c strings.c terminal.c tty_att.c \
  1431. XX    x_ascii.c x_batch.c x_extrnl.c x_menu.c x_rcv.c x_send.c x_win.c \
  1432. XX    xmodem.c
  1433. XX    lint -p -Dlint input.c vcs.c
  1434. XX    lint -p -Dlint waitfor.c
  1435. XX    lint -p -Dlint matches.c
  1436. XX    lint -p -Dlint modem_break.c
  1437. XX
  1438. XXshar:
  1439. XX    $(SHAR) Doc > pcomm_sh.1
  1440. XX    $(SHAR) Makefile Matches.1 Modem_break.1 Pcomm.1 Pcomm.dial_dir \
  1441. XX    Pcomm.extrnl Pcomm.modem Pcomm.param Readme Release.notes Sample \
  1442. XX    Unixpc.shar Waitfor.1 > pcomm_sh.2
  1443. XX    $(SHAR) admin.c chg_dir.c config.h curses.c d_delete.c d_lib.c \
  1444. XX    d_manual.c d_menu.c d_print.c d_prompt.c d_revise.c data_log.c \
  1445. XX    di_delay.c > pcomm_sh.3
  1446. XX    $(SHAR) di_win.c dial.c dial_dir.h e_lib.c expand.c extrnl.h \
  1447. XX    getcwd.c getopt.c help.c info.c init.c input.c list_dir.c \
  1448. XX    ls_menu.c > pcomm_sh.4
  1449. XX    $(SHAR) m_lib.c macro.c main.c matches.c misc.h modem.h \
  1450. XX    modem_break.c n_shell.c p_lib.c param.h passthru.c pexit.c \
  1451. XX    port.c > pcomm_sh.5
  1452. XX    $(SHAR) redial.c s_axfer.c s_extrnl.c s_gen.c s_menu.c s_modem.c \
  1453. XX    s_prompt.c s_term.c s_tty.c screen.c script.c st_line.c status.h \
  1454. XX    strings.c > pcomm_sh.6
  1455. XX    $(SHAR) terminal.c tty_att.c tty_ucb.c vcs.c vcs.h waitfor.c \
  1456. XX    x_ascii.c x_batch.c x_extrnl.c > pcomm_sh.7
  1457. XX    $(SHAR) x_menu.c x_rcv.c x_send.c x_win.c xmodem.c xmodem.h \
  1458. XX    > pcomm_sh.8
  1459. XX
  1460. XXadmin.o:    config.h dial_dir.h param.h
  1461. XXchg_dir.o:    config.h misc.h
  1462. XXcurses.o:    config.h misc.h
  1463. XXd_delete.o:    config.h dial_dir.h misc.h param.h
  1464. XXd_lib.o:    dial_dir.h param.h
  1465. XXd_manual.o:    config.h dial_dir.h misc.h
  1466. XXd_menu.o:    config.h dial_dir.h misc.h param.h
  1467. XXd_print.o:    config.h dial_dir.h misc.h
  1468. XXd_prompt.o:    config.h dial_dir.h misc.h
  1469. XXd_revise.o:    config.h dial_dir.h misc.h param.h
  1470. XXdata_log.o:    config.h misc.h param.h status.h
  1471. XXdi_delay.o:    config.h misc.h param.h
  1472. XXdi_win.o:    config.h dial_dir.h misc.h modem.h param.h
  1473. XXdial.o:        config.h dial_dir.h misc.h modem.h param.h
  1474. XXe_lib.o:    extrnl.h
  1475. XXexpand.o:    config.h
  1476. XXhelp.o:        config.h misc.h
  1477. XXinit.o:        config.h misc.h status.h
  1478. XXinput.o:    config.h misc.h status.h vcs.h
  1479. XXls_menu.o:    config.h dial_dir.h misc.h param.h
  1480. XXm_lib.o:    modem.h
  1481. XXmacro.o:    config.h misc.h param.h
  1482. XXmain.o:        config.h dial_dir.h extrnl.h misc.h modem.h param.h status.h
  1483. XXn_shell.o:    config.h
  1484. XXp_lib.o:    param.h
  1485. XXpassthru.o:    config.h misc.h
  1486. XXpexit.o:    config.h dial_dir.h misc.h param.h status.h
  1487. XXport.o:        config.h dial_dir.h modem.h
  1488. XXredial.o:    config.h dial_dir.h misc.h
  1489. XXs_axfer.o:    config.h misc.h param.h
  1490. XXs_extrnl.o:    config.h extrnl.h misc.h
  1491. XXs_gen.o:    config.h misc.h param.h
  1492. XXs_menu.o:    config.h misc.h
  1493. XXs_modem.o:    config.h misc.h modem.h
  1494. XXs_prompt.o:    config.h misc.h
  1495. XXs_term.o:    config.h misc.h param.h status.h
  1496. XXs_tty.o:    config.h misc.h modem.h
  1497. XXscreen.o:    config.h param.h status.h
  1498. XXscript.o:    config.h dial_dir.h status.h
  1499. XXst_line.o:    config.h dial_dir.h misc.h modem.h param.h status.h
  1500. XXstrings.o:    config.h
  1501. XXterminal.o:    config.h dial_dir.h misc.h modem.h param.h status.h xmodem.h
  1502. XXtty_att.o:    dial_dir.h param.h
  1503. XXtty_ucb.o:    dial_dir.h param.h
  1504. XXvcs.o:        config.h vcs.h
  1505. XXx_ascii.o:    config.h misc.h param.h
  1506. XXx_batch.o:    config.h misc.h xmodem.h
  1507. XXx_extrnl.o:    config.h
  1508. XXx_menu.o:    config.h extrnl.h misc.h xmodem.h
  1509. XXx_rcv.o:    config.h dial_dir.h misc.h xmodem.h
  1510. XXx_send.o:    config.h dial_dir.h misc.h xmodem.h
  1511. XXx_win.o:    config.h dial_dir.h misc.h xmodem.h
  1512. XXxmodem.o:    config.h misc.h param.h xmodem.h
  1513. XSHAR_EOF
  1514. Xif test 5239 -ne "`wc -c < 'Makefile'`"
  1515. Xthen
  1516. X    echo shar: "error transmitting 'Makefile'" '(should have been 5239 characters)'
  1517. Xfi
  1518. Xfi
  1519. Xecho shar: "extracting 'Pcomm.modem'" '(151 characters)'
  1520. Xif test -f 'Pcomm.modem'
  1521. Xthen
  1522. X    echo shar: "will not over-write existing file 'Pcomm.modem'"
  1523. Xelse
  1524. Xsed 's/^X//' << \SHAR_EOF > 'Pcomm.modem'
  1525. XXTTY_1=ph1;OBM;0
  1526. XXTTY_2=tty000;DIRECT;0
  1527. XXMODEM_1a=OBM;;%;@;
  1528. XXMODEM_1b=N;CONNECT;CONNECT;;;;
  1529. XXMODEM_1c=;;;
  1530. XXMODEM_2a=DIRECT;;;;
  1531. XXMODEM_2b=N;;;;;;
  1532. XXMODEM_2c=;;;
  1533. XSHAR_EOF
  1534. Xif test 151 -ne "`wc -c < 'Pcomm.modem'`"
  1535. Xthen
  1536. X    echo shar: "error transmitting 'Pcomm.modem'" '(should have been 151 characters)'
  1537. Xfi
  1538. Xfi
  1539. Xecho shar: "extracting 'Readme.7300'" '(5740 characters)'
  1540. Xif test -f 'Readme.7300'
  1541. Xthen
  1542. X    echo shar: "will not over-write existing file 'Readme.7300'"
  1543. Xelse
  1544. Xsed 's/^X//' << \SHAR_EOF > 'Readme.7300'
  1545. XX                  Pcomm v1.2
  1546. XX             Additional Notes for users of
  1547. XX                 AT&T Unix PC 7300/3b1
  1548. XX
  1549. XX    1) The shared libraries on your system contain Terminal Access
  1550. XX    Method (TAM) routines in lieu of curses(3) routines.  However,
  1551. XX    many of the routines have the same names!  This means that
  1552. XX    curses library is not compatible with the shared library.  So,
  1553. XX    to circumvent the problem, an alternate shared library "link
  1554. XX    directive file" is needed.
  1555. XX
  1556. XX    The Ifile.sh file (or Ifile30.sh file if using the 3.0 version
  1557. XX    of Unix) is a shell script that is run by the Makefile to create
  1558. XX    this alternate file.  The alternate file has the references to
  1559. XX    the TAM routines removed (actually, they just have an "x" placed
  1560. XX    in the names).  The actual shared library binaries are NOT
  1561. XX    altered.  We just fool the linker into believing that the TAM
  1562. XX    routines aren't there.
  1563. XX
  1564. XX    2) Before Pcomm can be compiled, the curses library routines
  1565. XX    must be installed on your system.  The diskette labeled
  1566. XX    "Curses/Terminfo Programmer's Package" is a part of the "Unix
  1567. XX    Development Set".  Likewise, before Pcomm can be used, the
  1568. XX    terminfo database must be installed.  The diskettes labeled
  1569. XX    "Curses/Terminfo End User Package" and "Terminfo Database" are
  1570. XX    a part of the "Unix Foundation Set"
  1571. XX
  1572. XX    3) If you are running Unix version 3.0 or older, you must edit
  1573. XX    the "config.h" file to change the OLDCURSES definition from
  1574. XX    "#undef" to "#define".  Also, you must edit the Makefile on
  1575. XX    the following lines:
  1576. XX
  1577. XX        #for Unix 3.0
  1578. XX        OTHERS = doprnt.o
  1579. XX        IFILE = Ifile30.sh
  1580. XX        #OTHERS = setvbuf.o doprnt.o
  1581. XX        #IFILE = Ifile.sh
  1582. XX
  1583. XX    4) Did you know that your system can use DEC vt100 style line
  1584. XX    drawing character?  Curses automatically uses the "alternate"
  1585. XX    character set (if found) to draw the boxes and lines rather than
  1586. XX    using the "-" and "|" characters.  To allow your system to use
  1587. XX    this feature, there are two things you must do:
  1588. XX
  1589. XX        1) Load the line drawing font in slot 1 prior to running
  1590. XX        a program requiring them.  This can be done by typing:
  1591. XX
  1592. XX            setf /usr/lib/wfont/BLD.ft 1
  1593. XX
  1594. XX        ...or permanently install this font in slot 1 by adding
  1595. XX        the following two lines to the end of the /etc/rc file:
  1596. XX
  1597. XX            sfont /usr/lib/wfont/BLD.ft 1
  1598. XX            setf /usr/lib/wfont/BLD.ft 1
  1599. XX
  1600. XX        2) Tell curses(3) about the alternate character set by
  1601. XX        editing the terminfo database.
  1602. XX
  1603. XX        To get a copy of the terminfo entry to play with,
  1604. XX        you type:
  1605. XX
  1606. XX            infocmp -I s4 > s4.ti
  1607. XX
  1608. XX        now add the following line (with a leading tab) to the
  1609. XX        "s4.ti" file:
  1610. XX
  1611. XX            acsc=+h\,g.e-fjjkkllmmnnqqttuuvvwwxx,
  1612. XX
  1613. XX        recompile the new entry:
  1614. XX
  1615. XX            tic s4.ti
  1616. XX
  1617. XX    There is one disadvantage...  Sometimes line noise will switch
  1618. XX    you to the line drawing character set while you're communicating
  1619. XX    with a remote!
  1620. XX
  1621. XX    5) The "tset" command is broken on every version of Unix this
  1622. XX    box has ever seen (it is commented out of /etc/profile for a
  1623. XX    good reason).  One of tset's functions was to send a string to
  1624. XX    initialize the settings of the terminal and to set the tab
  1625. XX    stops.  The fact that this program isn't used is often
  1626. XX    overlooked because the console (as well as a lot of other
  1627. XX    terminals) doesn't require any initialization.  However, if you
  1628. XX    call into your system from a remote terminal that *does* require
  1629. XX    initialization, you've got trouble.
  1630. XX
  1631. XX    For example, curses(3) looks at the terminfo database to see if
  1632. XX    your terminal has "hardware tabs", if so, it expects the tab
  1633. XX    stops to be set.  Ignoring tabs by using "stty -tabs" (to
  1634. XX    convert tabs to spaces) won't work, in fact, curses(3) RESETS
  1635. XX    things as if you had typed "stty tabs"!
  1636. XX
  1637. XX    Likewise, my terminfo entry for PCPLUS v1.1's emulation of a
  1638. XX    vt102 has "^[)0" in the initialization string to load the line
  1639. XX    drawing character set.  It needs to be sent to the terminal
  1640. XX    before running Pcomm.
  1641. XX
  1642. XX    Some versions of Unix have a "init" option to the "tput" command
  1643. XX    to perform all the initialization.  If so, you should edit the
  1644. XX    /etc/profile to add the following commands at the bottom:
  1645. XX
  1646. XX        tput init
  1647. XX        tabs
  1648. XX
  1649. XX    If your version of tput doesn't recognize the "init" option, a
  1650. XX    somewhat longer solution is to edit /etc/profile and add the
  1651. XX    following commands at the bottom:
  1652. XX
  1653. XX        eval `tput iprog`
  1654. XX        tput is1
  1655. XX        tput is2
  1656. XX        if [ -n "`tput hts`" ] ;then
  1657. XX            stty tabs
  1658. XX        else
  1659. XX            stty -tabs
  1660. XX        fi
  1661. XX        tabs
  1662. XX        cat -s "`tput if`"
  1663. XX        tput is3
  1664. XX        echo "\r\c"
  1665. XX
  1666. XX
  1667. XX    6) Pcomm makes (an arrogant) assumption that the phone line for
  1668. XX    the OBM is already configured in the DATA mode.  Users with only
  1669. XX    one phone line attached to ph0 will have to manually switch the
  1670. XX    line to the DATA mode before using Pcomm and then switch it back
  1671. XX    to VOICE afterwards.  To aid in this task, the following shell
  1672. XX    script could be used:
  1673. XX
  1674. XX        phtoggle
  1675. XX        sleep 1
  1676. XX        /usr/local/bin/pcomm $*
  1677. XX        phtoggle
  1678. XX
  1679. XX    Users with one phone line attached to ph0 will have to change
  1680. XX    the TTY setup since the default Pcomm.modem file assumes that
  1681. XX    ph1 is being used.
  1682. XX
  1683. XX    If you only have one phone line but *always* use it in the DATA
  1684. XX    mode, there is another solution.  Did you know that you can fool
  1685. XX    your machine into having a one-line system in the DATA mode?
  1686. XX    All you have to do is re-configure the Telephone Setup and tell
  1687. XX    the machine that you've got two lines (one line to be shared
  1688. XX    between VOICE and DATA on ph0, and one line to be DATA only on
  1689. XX    ph1).  Then you just never plug the phone line into ph0, you use
  1690. XX    ph1 instead.  The Telephone Setup menu is reached through the
  1691. XX    Office of install, Administration, Hardware Setup menues.
  1692. XX
  1693. XX    7. The SETUID_BROKE pre-processor variable was designed to take
  1694. XX    care of systems that aren't able to switch back and forth
  1695. XX    between the real and effective user id.  On the Unix PC, this
  1696. XX    problem only exists if the program is set-group-id.  So, if
  1697. XX    you're running HDB UUCP and have Pcomm set-user-id to uucp, you
  1698. XX    don't need to have SETUID_BROKE defined.
  1699. XSHAR_EOF
  1700. Xif test 5740 -ne "`wc -c < 'Readme.7300'`"
  1701. Xthen
  1702. X    echo shar: "error transmitting 'Readme.7300'" '(should have been 5740 characters)'
  1703. Xfi
  1704. Xfi
  1705. Xecho shar: "extracting 'config.h'" '(2273 characters)'
  1706. Xif test -f 'config.h'
  1707. Xthen
  1708. X    echo shar: "will not over-write existing file 'config.h'"
  1709. Xelse
  1710. Xsed 's/^X//' << \SHAR_EOF > 'config.h'
  1711. XX/*
  1712. XX * Various tunable parameters.  This should appear before any other local
  1713. XX * header file.
  1714. XX */
  1715. XX
  1716. XX/* Are you using a Berkeley flavor of Unix? */
  1717. XX#undef    BSD
  1718. XX
  1719. XX/* Use the dialing routines specific to the AT&T Unix PC 7300/3b1 */
  1720. XX#define    UNIXPC
  1721. XX
  1722. XX/* Older versions of curses(3) use termcap in lieu of terminfo */
  1723. XX#undef    OLDCURSES
  1724. XX
  1725. XX/* Use shared memory in lieu of a file for the virtual screen */
  1726. XX#define    SHAREDMEM
  1727. XX
  1728. XX/* Should a missing video attribute be promoted to standout? */
  1729. XX#define NOPROMOTE
  1730. XX
  1731. XX/* Use extra precautions if Pcomm is set-user-id or set-group-id */
  1732. XX#undef    SETUGID
  1733. XX
  1734. XX/* Should Pcomm make a log of all phone calls? */
  1735. XX#define    LOG_CALLS
  1736. XX
  1737. XX/* The name of the log file (if used).  */
  1738. XX#define    LOGFILE        "/usr/adm/phone.calls"
  1739. XX
  1740. XX/* Should long distance (toll) calls be limited to a specific group? */
  1741. XX#undef    LIMIT_LD
  1742. XX
  1743. XX/* The name of the privileged group for limiting long distance calls */
  1744. XX#define    GROUP_NAME    "uucp"
  1745. XX
  1746. XX/* The path to the line printer program */
  1747. XX#define    LPR        "/usr/bin/lp"
  1748. XX
  1749. XX/* The path to the "pretty" printer program (if none, use same as LPR) */
  1750. XX#define    LPRINT        "/usr/bin/lp"
  1751. XX
  1752. XX/* The path to the default directory containing the Pcomm support files */
  1753. XX#define    DEFAULT_DIR    "/usr/local/lib/pcomm"
  1754. XX
  1755. XX/* The path to the directory where UUCP locks are found */
  1756. XX#define    LOCK_DIR    "/usr/spool/uucp"
  1757. XX
  1758. XX/* Do the lock files use ASCII encoded PID's? */
  1759. XX#undef    ASCII_PID
  1760. XX
  1761. XX/* Fold the last character of the lock file to lower case? */
  1762. XX#undef XENIX_LOCKS
  1763. XX
  1764. XX/* Should Pcomm optimize redialing by keeping the TTY port open */
  1765. XX#define    KEEP_PORT
  1766. XX
  1767. XX/* Does the status line scroll up on "magic cookie" terminals? */
  1768. XX#define    XMC_BROKE
  1769. XX
  1770. XX/* Does the alarm() system call work correctly with the wgetch() function? */
  1771. XX#undef    WGETCH_BROKE
  1772. XX
  1773. XX/* The size of the serial port character buffer */
  1774. XX#define CLIST_SIZ    64
  1775. XX
  1776. XX/* The size of the input buffer (should be about the same as CLIST_SIZ) */
  1777. XX#define INPUT_BUF    16
  1778. XX
  1779. XX/* The size of the output buffer (should be about one half INPUT_BUF) */
  1780. XX#define OUTPUT_BUF    1
  1781. XX
  1782. XX/* Does memmove() exist or is memcpy() well behaved when overlapping? */
  1783. XX#define MEMMOVE    memcpy
  1784. XX
  1785. XX/* Does your Unix allow flip-flop between real and effective user IDs? */
  1786. XX#define SETUID_BROKE
  1787. XX
  1788. XXtypedef int SIG_TYPE;
  1789. XX
  1790. XX#ifdef OLDCURSES
  1791. XX#define fixterm xfixterm
  1792. XX#endif /* OLDCURSES */
  1793. XSHAR_EOF
  1794. Xif test 2273 -ne "`wc -c < 'config.h'`"
  1795. Xthen
  1796. X    echo shar: "error transmitting 'config.h'" '(should have been 2273 characters)'
  1797. Xfi
  1798. Xfi
  1799. Xexit 0
  1800. X#    End of shell archive
  1801. SHAR_EOF
  1802. if test 17190 -ne "`wc -c < 'Unixpc.shar'`"
  1803. then
  1804.     echo shar: "error transmitting 'Unixpc.shar'" '(should have been 17190 characters)'
  1805. fi
  1806. fi
  1807. echo shar: "extracting 'Waitfor.1'" '(871 characters)'
  1808. if test -f 'Waitfor.1'
  1809. then
  1810.     echo shar: "will not over-write existing file 'Waitfor.1'"
  1811. else
  1812. sed 's/^X//' << \SHAR_EOF > 'Waitfor.1'
  1813. X.TH WAITFOR 1 local
  1814. X.SH NAME
  1815. Xwaitfor \- wait for a string to appear on the stdin
  1816. X.SH SYNOPSIS
  1817. X.B waitfor
  1818. X[
  1819. X.B \-n
  1820. X]
  1821. X.B string
  1822. X.SH DESCRIPTION
  1823. X.I Waitfor
  1824. Xreads the standard input and returns a 0 if the string argument is
  1825. Xfound, returns a 1 if the strings did not appear within the allotted
  1826. Xtime, or returns a \-1 on error.  If the string is found,
  1827. X.I waitfor
  1828. Xreturns immediately.
  1829. X.PP
  1830. X.I Waitfor
  1831. Xis designed to be used by
  1832. X.I Pcomm
  1833. Xin a shell script for automatically logging a user onto a remote system.
  1834. X.PP
  1835. XThe
  1836. X.I \-n
  1837. Xoption is used to specify the length of time in seconds to wait.  The
  1838. Xdefault is 10 seconds.
  1839. X.SH EXAMPLE
  1840. X.nf
  1841. X    # wait 5 seconds for the login prompt
  1842. X    waitfor \-5 login:
  1843. X    # test the exit code of the waitfor command
  1844. X    if [ $? \-eq 0 ]
  1845. X    then
  1846. X        # send my user ID
  1847. X        echo egray
  1848. X    fi
  1849. X.fi
  1850. X.SH "SEE ALSO"
  1851. Xpcomm(1), matches(1), modem_break(1), Pcomm Reference Manual
  1852. SHAR_EOF
  1853. if test 871 -ne "`wc -c < 'Waitfor.1'`"
  1854. then
  1855.     echo shar: "error transmitting 'Waitfor.1'" '(should have been 871 characters)'
  1856. fi
  1857. fi
  1858. exit 0
  1859. #    End of shell archive
  1860.  
  1861.  
  1862.